The ButterflyTM Lisp System
نویسندگان
چکیده
This paper describes the Common Lisp system that BBN is developing for its ButterflyTM multiprocessor. The BBN ButterflyTM is a shared memory multiprocessor which may contain up to 256 processor nodes. The system provides a shared heap, parallel garbage collector, and window based I/O system. The future construct is used to specify parallelism. THE BUTTERFLYTM LISP SYSTEM For several decades, driven by industrial, military and experimental demands, numeric algorithms have required increasing quantities of computational power. Symbolic algorithms were laboratory curiosities; widespread demand for symbolic computing power lagged until recently. The demand for Lisp machines is an indication of the growth of the symbolic constituency. These machines possess architectural innovations that provide some performance increases, but they are still fundamentally sequential systems. Serial computing technology is reaching the point of diminishing returns, and thus both the numeric and symbolic computing communities are turning to parallelism as the most promising means for obtaining significant increases in computational power. BBN has been working in the field of parallel computers since the early 1970’s, having first developed the Pluribus multiprocessor and more recently, the Butterfly, the machine whose programming environment we concern ourselves with in this paper. The Butterfly multiprocessor consists of a set of up to 256 nodes, each containing both a processor and memory, connected by a Butterfly switch (a type of Omega network) (see figure 1). Each node has from 1 to 4 megabytes of memory, a Motorola 68000 series processor and a special purpose Processor Node Controller (PNC). The PNC is microprogrammed to handle inward and outward Butterfly switch transactions, and to provide multiprocessing extensions to the 68000 instruction set, particularly in cases where atomicity is required.1 To date, Butterfly programs have been written exclusively in C, with most numeric applications using the Uniform System package. The Uniform System provides and manages a large shared address space and has subroutines which can be used to distribute subtasks to all of the active processors. It has been used to speed up algorithms for matrix multiplication, image processing, determining elements of the Mandelbrot set, and solving differential equations and systems of linear equations.2 3 Butterflym is a trademark of Bolt, Beranek and Newman. Under DARPA sponsorship, BBN is developing a parallel symbolic programming environment for the Butterfly, based on an extended version of the Common Lisp language. The implementation of Butterfly Lisp is derived from C Scheme, written at MIT by members of the Scheme Team.4 The simplicity and power of Scheme make it particularly suitable as a testbed for exploring the issues of parallel execution, as well as a good implementation language for Common Lisp. The MIT Multilisp work of Professor Robert Halstead and students has had a significant influence on our approach. For example, the future construct, Butterfly Lisp’s primary mechanism for obtaining concurrency, was devised and first implemented by the Multilisp group. Our experience porting MultiLisp to the Butterfly illuminated many of the problems of developing a Lisp system that runs efficiently on both small and large Butterfly configurations.5 6 In the first section, this paper describes future-based multitasking in Butterfly Lisp and how it interacts with more familiar Lisp constructs. The second section describes how Butterfly Lisp deals with the problems of task distribution and memory allocation. It contrasts our approach and the Uniform System approach. The third section describes the Butterfly Lisp parallel garbage collector and the fourth section describes the user interface. Figure 1: 16x16 Butterfly Switch 730 / ENGINEERING From: AAAI-86 Proceedings. Copyright ©1986, AAAI (www.aaai.org). All rights reserved.
منابع مشابه
The Common Lisp Object System: An Overview
The Common Lisp Object System is an object-oriented system that is based on the concepts of generic functions, multiple inheritance, and method combination. All objects in the Object System are instances of classes that form an extension to the Common Lisp type system. The Common Lisp Object System is based on a meta-object protocol that renders it possible to alter the fundamental structure of...
متن کاملThe Design and Implementation of a Modern Lisp Dialect
Lisp, invented in 1958 by John McCarthy, revolutionized how programs could be written and expressed. Instead of giving explicit instructions to a computer, Lisp expressed programs as logical operations and functions. Lisp was the first language to incorporate modern language features including: garbage collection, conditionals, first class functions, and recursion. Also, in 1994 Common Lisp bec...
متن کاملLISP Program - Size Complexity II
We present the information-theoretic incompleteness theorems that arise in a theory of program-size complexity based on something close to real LISP. The complexity of a formal axiomatic system is defined to be the minimum size in characters of a LISP definition of the proofchecking function associated with the formal system. Using this concrete and easy to understand definition, we show (a) th...
متن کاملReconfiguring a Lisp System as a Hybrid Lisp/(Java) Component
We describe our experience in converting OMAR, a large human-performance modeling simulation environment, originally written completely in Lisp, into Distributed OMAR [D-OMAR] a distributed, hybrid Lisp/Java system. In the resulting system: • The kernel simulation system (Core-OMAR) remains written purely in Common Lisp, and as such is able to take full advantage of the relevant features of Lis...
متن کاملCCLISP™ on the iPSC™ Concurrent Computer
Concurrent Common LISPTM (CCLISP) is the LISP environment for the iPSCm system, the Intel Personal SuperComputer. CCLISP adds message-passing communication and other constructs to the Common LISP environment on each processor node. The iPSC system is configured with Intel 80286 processor nodes, in systems ranging from 8 to 128 nodes. Performance on a per node basis roughly equivalent to AI work...
متن کامل